import { ref } from "vue";

export default function useSelectParent() {
  // 接收ref值，同时接收子组件传递过来的show方法，就是子组件暴露给父组件的方法
  // 这个文件是在AddAndEdit.vue页面使用的，所以它的子组件就是parent.vue页面
  // ref除了可以声明响应式数据之外，最重要的作用就是获取组件
  // 这个方法有一个最重要的规则就是组件上挂载的ref的值，必须和现在的声明的变量的值一致
  // 只有这样，ref才能找到这个对应的组件，否则就会报错
  const parentRef = ref<{ show: () => void }>()
  // 这个selectParent方法就是在AddAndEdit.vue页面点击事件触发的方法
  // 然后使用ref触发子组件的show方法，show方法传递了该组件的一些属性
  // 同时调用了sysDialog.vue中的onshow方法，子组件显示出来
  const selectParent = () => {
    parentRef.value?.show()
  }
  return {
    parentRef,
    selectParent
  }
}